fetcher: Honor http_proxy environment variable
authorColin Walters <walters@verbum.org>
Tue, 1 Apr 2014 23:12:39 +0000 (19:12 -0400)
committerColin Walters <walters@verbum.org>
Tue, 1 Apr 2014 23:12:40 +0000 (19:12 -0400)
https://bugzilla.gnome.org/show_bug.cgi?id=706809

src/libostree/ostree-fetcher.c

index 6b55378fa6b516adb18c210b2239271fcac2e474..c3e5803aea8fe7cf495cc43faeee17349ba45808 100644 (file)
@@ -147,6 +147,7 @@ static void
 ostree_fetcher_init (OstreeFetcher *self)
 {
   gint max_conns;
+  const char *http_proxy;
 
   g_queue_init (&self->pending_queue);
   self->session = soup_session_async_new_with_options (SOUP_SESSION_USER_AGENT, "ostree ",
@@ -156,6 +157,22 @@ ostree_fetcher_init (OstreeFetcher *self)
                                                        SOUP_SESSION_TIMEOUT, 60,
                                                        SOUP_SESSION_IDLE_TIMEOUT, 60,
                                                        NULL);
+
+  http_proxy = g_getenv ("http_proxy");
+  if (http_proxy)
+    {
+      SoupURI *proxy_uri = soup_uri_new (http_proxy);
+      if (!proxy_uri)
+        {
+          g_warning ("Invalid proxy URI '%s'", http_proxy);
+        }
+      else
+        {
+          g_object_set (self->session, SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
+          soup_uri_free (proxy_uri);
+        }
+    }
+
   self->requester = (SoupRequester *)soup_session_get_feature (self->session, SOUP_TYPE_REQUESTER);
   g_object_get (self->session, "max-conns-per-host", &max_conns, NULL);
   self->max_outstanding = 3 * max_conns;